java_位运算符

 1 class OperateDemo4
 2 {
 3     public static void main(String[] args)
 4     {
 5         /*
 6         位运算符:用于操作二进制位的符号
 7         左移:<<   乘以2的次幂运算(左移空位出现在低位,用0补就可以)
 8         右移:>>   除以2次幂的运算(空位出现在高位,原来高位是什么,就用什么补位)
 9         无符号右移:>>>  空位出现在高位,无论高位是什么,都用0补位
10         
11         
12         */
13         
14         
15         System.out.println(3<<2); //3左移两位  先把3转换成二进制
16         /*00000000 00000000 00000000 00000011  -->3
17         00000000 00000000 00000000 00001100  -->12
18         左移操作可以方便进行x * 2次幂运算,只能对2的次幂进行次幂运算
19         
20         
21         3*4 内存运算过程
22         3转换二进制 011
23         4转换二进制 100
24                    -----
25                     000
26                    000
27                   011
28                  --------
29                  01100----->转换二进制为12
30         
31         6>>1
32           00000000  00000000  00000000  00000110
33            00000000  00000000  00000000  0000011|0
34           000000000  00000000  00000000  0000011  --->转换二进制为3
35           右移可以方便进行除以2次幂的运算
36           
37         */
38     }
39 }
40 
41 
42 
43 
44 
45 class OperateDemo4
46 {
47     public static void main(String[] args)
48     {
49         /*
50         位移运算符
51         &  |  ^
52         
53         */
54         
55         
56         System.out.println(6&3); /*
57         6&3运算过程
58         00000000 00000000 00000000 00000110
59       & 00000000 00000000 00000000 00000011
60       -------------------------------------
61         00000000 00000000 00000000 00000010 -----》2
62         & 用于取位数  >>> +& 用于取中间位数
63         
64         6|3
65         110
66       | 011
67       -----
68         111--->7
69         一个数异或另一个数两次结果还是这个数  用途:用于加密
70         6^3=5
71         110
72        ^011
73        ----
74         101 --->5
75        ^011
76        ----
77         110 ---->6
78         
79         */
80         
81     }
82 }

 

posted @ 2017-10-18 16:51  BirdieForLove  阅读(236)  评论(0编辑  收藏  举报